package com.sc.nft.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sc.nft.entity.SecondEquityPropsConfig;
import com.sc.nft.entity.vo.AdminSecondEquityPropsOrderListVO;
import com.sc.nft.entity.vo.AdminSecondEquityPropsPageVO;
import com.sc.nft.entity.vo.SecondConSignEquityPropsVO;
import com.sc.nft.enums.ConSignStatus;

import java.util.Date;

public interface AdminSecondEquityPropsService {

    /**
     * 新增二级权益道具配置
     *
     * @param equityPropsId
     * @param secondEquityPropsConfig
     */
    void addSecondEquityPropsConf(Long equityPropsId, SecondEquityPropsConfig secondEquityPropsConfig);

    /**
     * 后台分页查询寄售的权益道具列表
     *
     * @param firstTitle
     * @param page
     * @return
     */
    Page<AdminSecondEquityPropsPageVO> getPage(String firstTitle, Page page);

    /**
     * 修改二级权益道具配置
     *
     * @param secondEquityPropsConfig
     */
    void editSecondCollection(SecondEquityPropsConfig secondEquityPropsConfig);

    /**
     * 修改上下架
     *
     * @param id
     * @param status
     */
    void updateStatusById(Long id, Boolean status);

    /**
     * 寄售列表
     *
     * @param userTel
     * @param startTime
     * @param status
     * @param endTime
     * @param page
     * @return
     */
    Page<SecondConSignEquityPropsVO> adminConSignPage(String userTel, Date startTime, ConSignStatus status, Date endTime, Page page);

    /**
     * 交易列表
     *
     * @param buyUserTel
     * @param salesUserTel
     * @param firstTitle
     * @param startTime
     * @param endTime
     * @param mp
     * @return
     */
    Page<AdminSecondEquityPropsOrderListVO> adminDealEquityPropsPage(String buyUserTel, String salesUserTel, String firstTitle, Date startTime, Date endTime, Date dealStartTime, Date dealEndTime, Page mp);

    /**
     * 修改排序
     *
     * @param id
     * @param sort
     */
    void updateSortById(Long id, Integer sort);

    /**
     * 根据id获取
     *
     * @param id
     * @return
     */
    SecondEquityPropsConfig getSecondEquityPropsConf(Long id);

}
